﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using PiscoSourWeb.Models;
using PiscoSourDominio;

namespace PiscoSourWeb.Controllers
{
    public class UsuarioController : Controller
    {
        public ActionResult Login()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Login(Usuario usuario)
        {
            string result = string.Empty;
            if (string.IsNullOrEmpty(usuario.vchUsuario) || string.IsNullOrEmpty(usuario.vchpassword))
            {
                ViewBag.Error("Por favor, ingrese la información.");
                return View();
            }
            else
            {
                var objUsuario = (new ModelUsuario()).ValidarUsuario(usuario.vchUsuario, usuario.vchpassword, "1");

                if (objUsuario != null)
                {
                    Session["objAutenticado"] = objUsuario;
                    Session["Autenticado"] = "1";
                        
                    return View("List");
                }
                
                ViewBag.Error("Datos Incorrectos");
                return View();                                
            }
        }

        public ActionResult LoginRest()
        {
            return View();
        }

        [HttpPost]
        public ActionResult LoginRest(Usuario usuario)
        {
            string result = string.Empty;
            if (string.IsNullOrEmpty(usuario.vchUsuario) || string.IsNullOrEmpty(usuario.vchpassword))
            {
                ViewBag.Error("Por favor, ingrese la información.");
                return View();
            }
            else
            {
                var objUsuario = (new ModelUsuario()).ValidarUsuario(usuario.vchUsuario, usuario.vchpassword, "0");

                if (objUsuario != null)
                {
                    var objLocal = (new ModelLocal()).ObtenerUsuarioLocal(usuario.vchUsuario);

                    if (objLocal != null)
                    {
                        Session["objAutenticado"] = objUsuario;
                        Session["objAutenticadoLocal"] = objLocal;                        
                        Session["Autenticado"] = "2";
                        return RedirectToAction("ListRest");
                    }
                    else 
                    {
                        ViewBag.Error("Datos Incorrectos");
                        return View();
                    }

                }

                ViewBag.Error("Datos Incorrectos");
                return View();
            }
        }

        public ActionResult List()
        {
            //definir una variable de sesion llamada "autenticado" donde administrador sea 1, restaurante 2 y cliente 3
            //la variable de sesion para este caso se llamará "objAutenticado"
            if (((Session["Autenticado"] == null) ? "" : Session["Autenticado"].ToString()) == "1")
            {
                ViewBag.Titulo = "Bienvenido Usuario: " + ((Usuario)Session["objAutenticado"]).vchUsuario;
                return View();
            }
            else
            {
                return Redirect("/Home/Index");
            }

        }

        public ActionResult ListRest()
        {
            //definir una variable de sesion llamada "autenticado" donde administrador sea 1, restaurante 2 y cliente 3
            //la variable de sesion para este caso se llamará "objAutenticado"
            if (Session["Autenticado"].ToString() == "2")
            {
                ViewBag.Titulo = "Bienvenido Usuario: " + ((Usuario)Session["objAutenticado"]).vchUsuario;
                return View();
            }
            else 
            { 
                return RedirectToAction("LoginRest");
            }
            
        }

        public ActionResult Reporte()
        {
            return View();
        }
    }

}
